/**
 * Created by arvin on 2017/4/10.
 */
/**
 * Created by arvin on 2017/3/28.
 */
var Mongoose = require('mongoose');
var Logger = require("pomelo-logger").getLogger("pomelo", "adminMsg")

var Table={
    MotionDevice:{type:String,index: -1},
    UsedTime:{type:Number,default:0},// 这个设备使用了多少次
    Admin:{type:String,index:-1}, // 用户名
    Pasword:{type:String,index:-1} // 密码
};

var SchemaOption={};
var Schema = new Mongoose.Schema(Table,SchemaOption);
Schema.set('redisCache','adminMsg');
Schema.set('expire', 60000);

Schema.statics.invalidate = function (MotionDevice,cb) {

    this.findOne({MotionDevice:MotionDevice},function (e,d) {
        if(e|| !d)
        {
            console.log("没有查询到");
            // 没查询到，表示没有这个机器
            cb(null);
        }
        else
        {
            console.log("查询到了");
            // 找到这个设备
            cb(d);
        }
    });
}

Schema.statics.addMotionDev= function(dev,cb)
{
    this.collection.insert({
        MotionDevice: dev.MotionDevice,
        Admin : dev.Admin,
        UsedTime: dev.UsedTime,
        Password :dev.Password
    },function (err,result) {
        if(err)
        {
            console.log("插入失败");
        }
        else
        {
            console.log("插入成功");
        }
        console.log(result);
    })
}

Schema.statics.ResetTimes = function () {
    this.find({},function (e,d) {
        if (e || !d) {
            console.log("找不这个设备信息");
            return;
        }
        d.forEach(
            function (v,i,a) {
                v.UsedTime = 0;
                v.save(function (e) {
                    if (e) {
                        console.warn("更新一个管理员权限失败")
                    } else
                        console.warn("更新一个管理员权限成功")
                })
            }
        );

    }
    );
}

Schema.statics.UpdateAdmin = function (dev) {
    this.findOne(
        {MotionDevice:dev.MotionDevice},function (e,d) {
            if (e || !d) {
                console.log("找不这个设备信息");
                return;
            }

            d.UsedTime= dev.UsedTime;

            d.save(function (e) {
                if (e) {
                    console.log("更新一个管理员权限失败")
                } else
                    console.log("更新一个管理员权限成功")
            })
        }
    );
}

module.exports = {
    "name": "adminMsg",
    "schema": Schema
};